using System;
using System.Collections.Generic;

namespace Diploma.Models.IRepositories
{
    public interface IGlobalTasksRepository
    {
        GlobalTask GetGlobalTask(Guid id);
        Dictionary<PlaningType, List<GlobalTask>> GroupGlobalTasksByType(QualificationLevel level);
        void TrimTasksAfterLastGlobalTask();
        void RemoveGlobalTaskRemoveFromSequance(GlobalTask globalTask);
        void InsertGlobalTaskInSequance(GlobalTask globalTask);
        void Add(GlobalTask globalTask);
        void Edit(GlobalTask globalTask);
        void Delete(GlobalTask globalTask);
        IEnumerable<GlobalTask> GetGlobalTaskByLevelAndPlaningType(int levelId, int planingTypeId, DateTime date);
        IEnumerable<GlobalTask> GetGlobalTaskByLevelAndPlaningType(int levelId, int planingTypeId);
        void SetCompletion(GlobalTask globalTask, Student student, bool? isCompleted);
        void SetCompletionDate(GlobalTask globalTask);
        bool GlobalTaskCanBeAdded(GlobalTask globalTask);
        IEnumerable<GlobalTask> GetNextTasks(GlobalTask globalTask);
    }
}